package com.tju.resource.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.tju.resource.model.SysPermission;
import com.tju.resource.model.SysRole;
import com.tju.resource.model.SysUser;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface SysPermissionMapper extends BaseMapper<SysPermission> {
    /**
     * 查询菜单
     *
     * @param permission 菜单信息
     * @return 菜单列表
     */
    public List<SysPermission> selectSysPermissionList(SysPermission permission);
    /**
     * 查询菜单
     *
     * @param permission 菜单信息
     * @return 菜单列表
     */
    public SysPermission selectSysPermissionByName(String name);

    /**
     * 查询菜单
     *
     * @param permission 菜单信息
     * @return 菜单列表
     */
    public List<SysPermission> selectSysPermissionListByUserName(SysPermission permission);
    /**
     * 查询菜单数量
     * @param parentId 菜单父级id
     * @return结果
     */
    public int selectCountPermissionByParentId(Long parentId);
    /**
     * 查询菜单使用数量
     *
     * @param permissionId 菜单ID
     * @return 结果
     */
    public int selectCountRolePermissionByPermissionId(Long permissionId);
    /**
     * 删除菜单管理信息
     *
     * @param parentId 菜单ID
     * @return 结果
     */
    public int deletePermissionByParentId(Long parentId);
    /**
     * 根据菜单ID查询信息
     *
     * @param parentId 菜单ID
     * @return 菜单信息
     */
    public SysPermission  SysPermissionByParentId(Long parentId);
    /**
     * 校验菜单名称是否唯一
     *
     * @return 结果
     */
    public SysPermission checkPermissionNameUnique(@Param("name") String name);

    /**
     * Query the menu by login name
     *
     * @param loginName
     * @return
     */
    List<SysPermission> getMenusByUserName(@Param("loginName") String loginName);

    /**
     * 根据用户名查询用户id
     */
    SysRole selectUserName(String userName);
}